home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Tools 2
/
Amiga Tools 2.iso
/
tex
/
macros
/
source
/
contrib
/
misc
/
drftcite.sty
< prev
next >
Wrap
Text File
|
1995-03-09
|
8KB
|
192 lines
% D R F T C I T E . S T Y
%
% version 3.4 (Jul 1994)
%
% Print the tags instead of the numbers for \cite.
% See also CITE.STY and OVERCITE.STY.
%
% Copyright (C) 1989,1991,1992,1993,1994 by Donald Arseneau
% These macros may be freely transmitted, reproduced, or modified for
% non-commercial purposes provided that this notice is left intact.
%
% Use the label instead of the number for citations, as if you had used
% \bibitem[name]{name}..., but write the proper citation number to the aux
% file. Ignore spaces before the \cite, inserting an ordinary interword
% space. Also ignore spaces after commas in the input list. This package
% is particularly useful for draft (draught) versions of documents that
% will eventually use cite.sty or overcite.sty.
%
% This also keeps track of the order of first-citations in the text for
% easy sorting (in lieu of BibTeX). To omit this counting...
% in LaTeX 2.09: declare \nocitecount before the first \cite; or, for
% a more permanent removal, comment-out the lines ending with %%o below,
% and omit everything following the line that begins with %%o.
% in LaTeX2e: specify \usepackage[nocitecount]{drftcite}, or perform the
% editing described above.
%
% Drftcite keeps track of which references were cited, and issues warnings
% for bibliography items that were never cited in the text.
%
% The characters <>|_{}\ are not present in the roman fonts, so if you use
% them in identifiers, they will have to be typeset in typewriter style.
% To do this,...
% with LaTeX 2.09: un-comment two lines in the definition of \@citeverb.
% with LaTeX2e: specify \usepackage[tt]{drftcite}
%
% `Citation...undefined' warnings are only given once per undefined
% citation name. In the text, missing numbers are represented with a
% bold `name?'. To restore multiple warnings...
% for LaTex 2.09: edit: "delete this line to issue warnings always"
% for LaTeX2e: specify \usepackage[verbose]{drftcite}
%
% This version of drftcite can co-exist with chapterbib.sty (version 1.4
% or later).
% ........................
% \citen gives the citation tag in the text and writes the aux file entry.
% Use \citen to give citation name without the other formatting; e.g.,
% "See also ref.~\citen{junk}" gives "See also ref. junk".
%
\edef\citen{\noexpand\protect \expandafter\noexpand\csname citen \endcsname}
\@namedef{citen }#1{%
\edef\@tempa{\@ignspaftercomma,#1, \@end, }% ignore spaces in parameter list.
\edef\@tempa{\expandafter\@ignendcommas\@tempa\@end}%
\if@filesw \immediate\write \@auxout {\string\citation {\@tempa}}\fi
\def\@citea{}%
\@for \@citeb:=\@tempa\do {\@citea
\@ifundefined {b@\@citeb\@extra@b@citeb}%
{{\bf \@citeverb{\@citeb}?}%% issue warning only for first mis-use:
\@dftc@ifund {DCN@\@citeb\@extra@b@citeb}{% delete this line to issue warnings always
\@warning {Citation `\@citeb' on page \thepage\space undefined}%
}{}% delete this line to issue warnings always
}% else, defined
{\hbox{\@citeverb{\@citeb}}}%
\def\@citea{,\ }\@advancecitecount
}}
% for ignoring spaces in the input:
\def\@ignspaftercomma#1, {\ifx\@end#1\@empty\else
#1,\expandafter\@ignspaftercomma\fi}
\def\@ignendcommas,#1,\@end{#1}
% Make \cite robust.
%
\edef\cite{\noexpand\protect\expandafter\noexpand\csname cite \endcsname}
\@namedef{cite }{\@ifnextchar [{\@tempswatrue\@citex}{\@tempswafalse\@citex[]}}
% Make \@citex refer to \citen:
% (Put a single space before the output)
%
\def\@citex[#1]#2{\leavevmode\unskip
\ \@cite{\citen{#2}}{#1}\spacefactor\@m}%
%
% Give the citation tag as the label (even if another label is specified)
%
\def\@lbibitem[#1]#2{\global\@HighCite\z@
\item[\@biblabel{%
\@ifundefined{DCN@#2\@extra@b@citeb}{\@warning {Reference `#2' on page \thepage\space
was never cited}}{}%
\DC@llap{$^{\@nameuse{DCN@#2\@extra@b@citeb}}$\ \ }%%o
\@citeverb{#2}}\hfil]\if@filesw
{\def\protect##1{\string ##1\space}%
\immediate\write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces}
\def\@bibitem#1{\refstepcounter{\@listctr}\@lbibitem[\the\value{\@listctr}]{#1}}
% make the special characters in the citation tag printable
%
\def\@citeverb#1{%
{\@dftc@tt {% to get characters <>_|{}
\expandafter \expandafter \expandafter \@gobble % do \csname, \string, ...
\expandafter \string\csname#1\endcsname}% % \@gobble, in that order.
}}%
% \@extra@b@citeb is a hook for other style files to further specify
% citations; for example, to number by chapter.
% In case no fancy bib package (chapterbib) defines it:
\@ifundefined{@extra@b@citeb}{\def\@extra@b@citeb{}}{}
%------------------------------------
% Handle optional variations:
\def\@dftc@tt{} % use normal text by default
% \def\@dftc@tt{\tt}% uncomment this line to make \tt the default
\def\nocitecount{%
\def\@advancecitecount{\global\@namedef{DCN@\@citeb\@extra@b@citeb}{}}%
\let\DC@llap\@gobble}
\nocitecount % in case what follows gets removed
\newcount\@HighCite \global\@HighCite\z@
\let\@dftc@ifund\@ifundefined
\@ifundefined{DeclareOption}{}%
{ \DeclareOption{nocitecount}{\endinput}
\toks@={\def\@dftc@ifund#1#2#3{#2}}
\DeclareOption{verbose}{\the\toks@}
\DeclareOption{tt}{\def\@dftc@tt{\tt}}
\ProcessOptions }
% The rest deals only with counting, and can be removed if counting is never
% desired.
\let\DC@llap=\llap
%
% count the citations as they appear in the text
%
\def\@advancecitecount{\@ifundefined {DCN@\@citeb\@extra@b@citeb}%
{\global\advance\@HighCite\@ne
\expandafter\xdef\csname DCN@\@citeb\@extra@b@citeb\endcsname{\the\@HighCite}}%
{}}
%
% The remainder handles (counting over) input files skipped by \includeonly.
% It adds code to LaTeX's \include to re-read the .aux file checking the
% \citation commands.
%
% For included files that are skipped (not listed by \includeonly)
% input the .aux file ignoring all commands but \citation, which
% does \@advancecitecount (keeps count of the citations).
%
\let\@dftc@include\include
\def\include#1{\relax
\ifx\DC@llap\llap \begingroup % do counting only if wanted
\@ifundefined{cp@#1}{}% don't do if .aux file not there!
{\toks@\expandafter\expandafter\expandafter{\csname cp@#1\endcsname}%
\expandafter\xdef\csname cp@#1\endcsname{\the\toks@
\noexpand\@dftc@auxcite{#1}}}%
\endgroup\fi \@dftc@include{#1}}
%
\def\@dftc@auxcite#1{\begingroup % disable everything but \citation
\let\bibcite\@gobbletwo \let\newlabel\@gobbletwo \let\@writefile\@gobbletwo
\let\bibdata\@gobble \let\bibstyle\@gobble % already \@gobble normally
\def\citation##1{\@for\@citeb:=##1\do {\@advancecitecount}}%
\makeatletter\@input{#1.aux}\endgroup
}
\endinput
%
% [This file is named "drftcite" because "draftcite" is too long a name for
% some computers. Sorry to those who use the spelling "draught." I could
% have abbreviated the name by selecting the shared letters in "draft" and
% "draught," but "dratcite" somehow conveys the wrong meaning.]
%
% Version 1991: Ignore spaces after commas in the parameter list. Create
% \nocitecount to turn off counting the order of citations.
% Version 3.1 (1992): protect \cite and \citen. (There is no version 3.0)
% Version 3.2 (1993): Supress repetitions of warning messages. Include
% \@extra@b@citeb hook for chapterbib.sty. Make \include handle case that
% \cp@FOO was not defined.
% Version 3.3 (1993): Fix \nocitecount. Change printing of undefined refs.
% Version 3.4 (1994): LaTex2e support, including spaces in protected command
% names; better chapterbib support.
%
% Send problem reports to asnd@Reg.triumf.ca
%
% Test integrity of file:
% brackets: round, square, curly, angle: () [] {} <>
% backslash, slash, vertical, at, dollar, and: \ / | @ $ &
% hat, grave, acute (apostrophe), quote, tilde, under: ^ ` ' " ~ _